/*
 * C function
 * Authors: ZhangXuelian
 * 
 * 
 * 
 * Changes:
 * 
 * 
 * 
 * */
package com.COE.MdmSdkLib;

public class API {
	// 设备本身的Handler为0；返回为 -1为InitSdk error
	// 即手机本身是0号设备。以后操作这些设备均使用Handler去操作。
//	public static native int InitSdk(
//			SdkLibListener listener, /**/
//			String manufacturer_id,  /**/
//			String manufacturer_license, /**/
//			int product_id, /**/
//			int product_version, /**/
//			String device_serial_number, /**/
//			String device_serial_number_license, /**/
//			String follow_topics, /**/
//			int imid, /*for im, unused*/
//			String c_server_ip, /* c server ip */
//			int c_server_port	/* c server port */
//			);

	public static native int InitSdk(
			SdkLibListener listener, /**/
			String manufacturer_id,  /**/
			String manufacturer_license, /**/
			int product_id, /**/
			int product_version, /**/
			String device_serial_number, /**/
			String device_serial_number_license, /**/
			String follow_topics, /**/
			String imid, /*for im, unused*/
			String c_server_ip, /* c server ip */
			int c_server_port	/* c server port */
	);


	
	public static native void deInitSdk();
	// method
	// 返回手机所属的设备Handler，从1开始。以后操作这些设备均使用Handler去操作。
	public static native int NewDevice(	
			  String manufacturer_id,/**/
			  int product_id,/**/
			  String device_serial_number,/**/
			  String follow_topics /**/
			  );
	
	public static native void DeleteDevice(int handler);
	// 新发送命令时，返回task_no
	public static native int CmdSend(
			 int handler,/**/
			 String json, /**/
			 int task_no, /**/
			 int priority /**/
			 );
	
	public static native void RecordSend(
			int handler,/**/
			String json, /**/
			int record_type,/**/
			int qos, /**/
			int priority/**/
			);
	
	// IM 
	// Send 发送IM消息
	//		cmd          : 命令字
	//		imid         : 对方的imid
	//		service_name : java端提供的服务名称
	//		pb_package   : 安卓要发送的数据,其中包含对方的imid,详情见<协议设计文档>或 咨询滕工
	public static native void BaseImSend(
			int cmd, 
			int imid,
			String service_name,
			byte[] pb_package
			);

	//这个函数,由于imid改为String类型,所以增加此函数
	public static native void BaseImstrSend(
			int cmd,
			String imid,	//[注意] 此处,im改为String类型
			String service_name,
			byte[] pb_package
	);

	//主动断开连接
	public static native void ActiveOffLine();


	static {
		 System.out.println(System.getProperty("java.library.path"));
		 System.out.println("===== begin load lib =======");
		 System.loadLibrary("coe_mdm_sdk_lib");
		 System.out.println("===== end   load lib =======");
	}
}
